package com.woniuxy.sale.service;

import com.woniuxy.model.vo.GoodsVo;
import com.woniuxy.response.CustomPage;
import com.woniuxy.model.entity.ExportTable;
import com.woniuxy.sale.entity.dto.SaleOrderDTO;
import com.woniuxy.sale.entity.dto.SalePackDTO;
import com.woniuxy.sale.entity.dto.TopDTO;
import com.woniuxy.sale.entity.vo.*;
import com.woniuxy.model.vo.UpdateSaleOrderVo;
import com.woniuxy.sale.exception.SaleOrderAddException;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 选货单总表; 服务类
 * </p>
 *
 * @author lio
 * @since 2023-09-07
 */
public interface SaleOrderService{

    CustomPage<List<SaleOrderDTO>> info(SaleOrderVo saleOrderVo);

    CustomPage<List<GoodsVo>> findGoods(GoodsVo goodsVo);

    boolean add(AddSaleOrderVo saleOrderVo) throws SaleOrderAddException;

    boolean updateState(UpdateSaleOrderVo updateSaleOrderVo);

    boolean del(DelSaleOrderVo delSaleOrderVo);

    CustomPage<List<SalePackDTO>> packInfo(SaleOrderVo saleOrderVo);

    SalePackDTO findAllBySno(String sno);

    boolean check(UpdateSaleOrderVo updateSaleOrderVo);

    List<String> findAllSno();

    String findCustomerBySno(String sno);

    boolean updateSaleOrder(UpdateSaleOrderAllVo updateSaleOrderAllVo);

    boolean exportSaleOrder(ExportTable table);

    Integer findSidBySno(String sno);

    List<TopDTO> findTopPaid();

    List<TopDTO> findToUnpPaid();

    BigDecimal findTotalPriceBySno(String sno);
}
